package com.dragon.modules.yuegou.model.park;

import com.dragon.modules.yuegou.entity.park.CouponGrantEntity;
import com.dragon.modules.yuegou.enums.park.CouponGrantStatus;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 停车券发放信息表模型类
 * 
 * @author px
 * @date 2019-04-18 10:10:03
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class CouponGrant extends CouponGrantEntity {


	/**
	 * 构造一个空停车券发放信息表模型对象
	 */
	public CouponGrant(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个停车券发放信息表模型对象
	 * 
	 * @param entity 实体对象
	 */
	public CouponGrant(CouponGrantEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个停车券发放信息表模型对象
	 * 
	 * @param other 其它对象
	 */
	public CouponGrant(CouponGrant other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置主键
	 * 
	 * @param id 主键
	 * @return 当前对象
	 */
    public CouponGrant id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getBusdId() {
    	return busdId;
    }

    /**
	 * 设置商圈ID
	 * 
	 * @param busdId 商圈ID
	 * @return 当前对象
	 */
    public CouponGrant busdId(String busdId) {
    	this.busdId = busdId;
    	return this;
    }

	@Override
	public String getMerchantId() {
    	return merchantId;
    }

    /**
	 * 设置商户ID
	 * 
	 * @param merchantId 商户ID
	 * @return 当前对象
	 */
    public CouponGrant merchantId(String merchantId) {
    	this.merchantId = merchantId;
    	return this;
    }

	@Override
	public String getParkCouponMerchantId() {
    	return parkCouponMerchantId;
    }

    /**
	 * 设置停车券与商户关系表id
	 * 
	 * @param parkCouponMerchantId 停车券与商户关系表id
	 * @return 当前对象
	 */
    public CouponGrant parkCouponMerchantId(String parkCouponMerchantId) {
    	this.parkCouponMerchantId = parkCouponMerchantId;
    	return this;
    }

	@Override
	public String getCouponTemplate() {
    	return couponTemplate;
    }

    /**
	 * 设置停车券id
	 * 
	 * @param couponTemplate 停车券id
	 * @return 当前对象
	 */
    public CouponGrant couponTemplate(String couponTemplate) {
    	this.couponTemplate = couponTemplate;
    	return this;
    }

	@Override
	public String getCouponTemplateName() {
    	return couponTemplateName;
    }

    /**
	 * 设置停车券名字
	 * 
	 * @param couponTemplateName 停车券名字
	 * @return 当前对象
	 */
    public CouponGrant couponTemplateName(String couponTemplateName) {
    	this.couponTemplateName = couponTemplateName;
    	return this;
    }

	@Override
	public String getMemberId() {
    	return memberId;
    }

    /**
	 * 设置会员ID
	 * 
	 * @param memberId 会员ID
	 * @return 当前对象
	 */
    public CouponGrant memberId(String memberId) {
    	this.memberId = memberId;
    	return this;
    }

	@Override
	public String getParkCouponMemberId() {
    	return parkCouponMemberId;
    }

    /**
	 * 设置停车券与会员关系表id
	 * 
	 * @param parkCouponMemberId 停车券与会员关系表id
	 * @return 当前对象
	 */
    public CouponGrant parkCouponMemberId(String parkCouponMemberId) {
    	this.parkCouponMemberId = parkCouponMemberId;
    	return this;
    }

	@Override
	public LocalDateTime getGetTime() {
    	return getTime;
    }

    /**
	 * 设置领取时间
	 * 
	 * @param getTime 领取时间
	 * @return 当前对象
	 */
    public CouponGrant getTime(LocalDateTime getTime) {
    	this.getTime = getTime;
    	return this;
    }

	@Override
	public String getGrantBy() {
    	return grantBy;
    }

    /**
	 * 设置发放人
	 * 
	 * @param grantBy 发放人
	 * @return 当前对象
	 */
    public CouponGrant grantBy(String grantBy) {
    	this.grantBy = grantBy;
    	return this;
    }

	@Override
	public LocalDateTime getGrantTime() {
    	return grantTime;
    }

    /**
	 * 设置发放时间
	 * 
	 * @param grantTime 发放时间
	 * @return 当前对象
	 */
    public CouponGrant grantTime(LocalDateTime grantTime) {
    	this.grantTime = grantTime;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 * @return 当前对象
	 */
    public CouponGrant createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public CouponGrantStatus getStatus() {
    	return status;
    }

    /**
	 * 设置[枚举]活动状态：0-未领取-UNGET、1-已领取-GET
	 * 
	 * @param status [枚举]活动状态：0-未领取-UNGET、1-已领取-GET
	 * @return 当前对象
	 */
    public CouponGrant status(CouponGrantStatus status) {
    	this.status = status;
    	return this;
    }

}
